import os

import xlrd


# 注意excel 如果单元格内容是纯数字，读取出来的会是小数， 单元格数字前加个'即可
# 下载pip3 install xlrd

class ExclUtil():

    @classmethod
    def getcase(cls, excl_path, case_name, case_funcname=""):
        """
            excl_path excl文件路径
           case_name 工作薄名称
           case_funcname 模块名称
        """

        # 1.打开excel
        work_book = xlrd.open_workbook(excl_path)
        # 2.获取工作薄
        table = work_book.sheet_by_name(case_name)
        # 3.获取第一列所有标题内容
        title_list = []
        for n in range(0, table.ncols):
            title = table.cell_value(0, n).rsplit("-", 1)[1]
            title_list.append(title)

        # 4.获取每条case内容
        case_list = []
        # 从第二行开始遍历每一列case（第一行是标题）
        for n in range(1, table.nrows):
            itme_row = {}
            # 遍历每行中的每一个单元格
            for j in range(0, len(title_list)):
                # 获取每行单元格的内容
                itme_row[title_list[j]] = table.cell_value(n, j)

            # 如果没有指定case功能名称
            if case_funcname == "":
                case_list.append(itme_row)
            else:
                # 如果指定case功能名称
                if case_funcname == itme_row.get("funcname"):
                    case_list.append(itme_row)

        return case_list


if __name__ == "__main__":
    print('<<<<<<')
    print(os.path.abspath("api_test/data/case.xls"))
    print('>>>>>>')
    ExclUtil.getcase(os.path.abspath(r"C:\Users\Administrator\PycharmProjects\api_test\data\case.xls"), "case")
    # ExclUtil.getcase(os.path.abspath("../data/case.xlsx"), "case")
